package cn.iocoder.yudao.module.reading.service.community;

import cn.iocoder.yudao.module.reading.controller.app.community.vo.draft.DraftCreateReqVO;
import cn.iocoder.yudao.module.reading.controller.app.community.vo.draft.DraftRespVO;

/**
 * 社区草稿服务接口
 *
 * @author 芋道源码
 */
public interface CommunityDraftService {

    /**
     * 保存草稿
     *
     * @param createReqVO 草稿信息
     * @param userId 用户ID
     * @return 草稿ID
     */
    Long saveDraft(DraftCreateReqVO createReqVO, Long userId);

    /**
     * 获取用户最新的草稿
     *
     * @param userId 用户ID
     * @param type 草稿类型
     * @return 草稿信息
     */
    DraftRespVO getLatestDraft(Long userId, String type);

    /**
     * 删除用户的草稿（逻辑删除）
     *
     * @param userId 用户ID
     * @param type 草稿类型
     */
    void deleteDraft(Long userId, String type);

    /**
     * 物理删除用户的草稿
     * 用于发布动态后彻底删除草稿数据
     *
     * @param userId 用户ID
     * @param type 草稿类型
     */
    void physicalDeleteDraft(Long userId, String type);

    /**
     * 清理过期草稿（定时任务调用）
     */
    void cleanExpiredDrafts();

}
